237 research outputs found
Commands as AI Conversations
Developers and data scientists often struggle to write command-line inputs,
even though graphical interfaces or tools like ChatGPT can assist. The
solution? "ai-cli," an open-source system inspired by GitHub Copilot that
converts natural language prompts into executable commands for various Linux
command-line tools. By tapping into OpenAI's API, which allows interaction
through JSON HTTP requests, "ai-cli" transforms user queries into actionable
command-line instructions. However, integrating AI assistance across multiple
command-line tools, especially in open source settings, can be complex.
Historically, operating systems could mediate, but individual tool
functionality and the lack of a unified approach have made centralized
integration challenging. The "ai-cli" tool, by bridging this gap through
dynamic loading and linking with each program's Readline library API, makes
command-line interfaces smarter and more user-friendly, opening avenues for
further enhancement and cross-platform applicability.Comment: 5 page
Open Source Adoption In Large US Companies
Various organizations increasingly adopt open source software, both on desktop PCs and servers. Since the first movements in open source in the 1960’s its growth has lead to new approaches in software development, licensing, and distribution, as well as in software vendors’ business models. The literature includes very interesting studies regarding prospective benefits, business models and case studies. However, the adoption of open source in large, global companies and its relationship with factors such as profitability, revenues and industry sector has not yet been researched. This study aims to answer these questions based on data we collected from Fortune 1000 companies and provides a method that can be applied in similar contexts
Definitions of a Software Smell
Many authors have defined smells from their perspective. This document attempts to provide a consolidated list of such definitions
Global software development in the freeBSD project
Freebsd is a sophisticated operating system developed and maintained as open-source software by a team of more than 350 individuals located throughout the world. This study uses developer location data, the configuration management repository, and records from the issue database to examine the extent of global development and its effect on produc-tivity, quality, and developer cooperation. The key findings are that global development allows round-the-clock work, but there are some marked differences between the type of work performed at different regions. The effects of multiple dispersed developers on the quality of code and productiv-ity are negligible. Mentoring appears to be sometimes as-sociated with developers living closer together, but ad-hoc cooperation seems to work fine across continents
Software engineering for deep learning applications: usage of SWEng and MLops tools in GitHub repositories
The rising popularity of deep learning (DL) methods and techniques has
invigorated interest in the topic of SE4DL, the application of software
engineering (SE) practices on deep learning software. Despite the novel
engineering challenges brought on by the data-driven and non-deterministic
paradigm of DL software, little work has been invested into developing
AI-targeted SE tools. On the other hand, tools tackling more general
engineering issues in DL are actively used and referred to under the umbrella
term of ``MLOps tools''. Furthermore, the available literature supports the
utility of conventional SE tooling in DL software development. Building upon
previous MSR research on tool usage in open-source software works, we identify
conventional and MLOps tools adopted in popular applied DL projects that use
Python as the main programming language. About 70% of the GitHub repositories
mined contained at least one conventional SE tool. Software configuration
management tools are the most adopted, while the opposite applies to
maintenance tools. Substantially fewer MLOps tools were in use, with only 9
tools out of a sample of 80 used in at least one repository. The majority of
them were open-source rather than proprietary. One of these tools, TensorBoard,
was found to be adopted in about half of the repositories in our study.
Consequently, the use of conventional SE tooling demonstrates its relevance to
DL software. Further research is recommended on the adoption of MLOps tooling
by open-source projects, focusing on the relevance of particular tool types,
the development of required tools, as well as ways to promote the use of
already available tools
Quieting the Static: A Study of Static Analysis Alert Suppressions
Static analysis tools are commonly used to detect defects before the code is
released. Previous research has focused on their overall effectiveness and
their ability to detect defects. However, little is known about the usage
patterns of warning suppressions: the configurations developers set up in order
to prevent the appearance of specific warnings. We address this gap by
analyzing how often are warning suppression features used, which warning
suppression features are used and for what purpose, and also how could the use
of warning suppression annotations be avoided. To answer these questions we
examine 1\,425 open-source Java-based projects that utilize Findbugs or
Spotbugs for warning-suppressing configurations and source code annotations. We
find that although most warnings are suppressed, only a small portion of them
get frequently suppressed. Contrary to expectations, false positives account
for a minor proportion of suppressions. A significant number of suppressions
introduce technical debt, suggesting potential disregard for code quality or a
lack of appropriate guidance from the tool. Misleading suggestions and
incorrect assumptions also lead to suppressions. Findings underscore the need
for better communication and education related to the use of static analysis
tools, improved bug pattern definitions, and better code annotation. Future
research can extend these findings to other static analysis tools, and apply
them to improve the effectiveness of static analysis.Comment: 11 pages, 4 figure
- …